Поиск и сортировка: основа работы с большими объемами данных
Поиск и сортировка — это не только начало курса по алгоритмам, но и фундаментальная логика обработки данных в информатике. Ценность данных определяется эффективностью их поиска и структурирования. В этом разделе мы рассмотрим самый базовый метод:последовательный поиск— раскрывает суть оценки алгоритмов: как с помощью линейного сравнения находить целевой элемент в зависимости от формы данных.
1. Логика и стоимость
Последовательный поиск:начинаем с первого элемента списка, последовательно проверяем каждый элемент в стандартном порядке до тех пор, пока не найдем нужный элемент или не пройдем весь список. Его временная сложность составляет $O(n)$.
2. Сравнение производительности: неупорядоченные против упорядоченных
Внеупорядоченном списке中(见下表),无论成功与否,平均比对次数通常与 $n$ 成正比。而在упорядоченном спискесписке можно реализовать «раннее завершение»: как только встречается элемент, превышающий целевое значение, можно заключить, что цель отсутствует. Хотя это не меняет сущности $O(n)$, но повышает среднюю эффективность при неудачных поисках.
| Тип списка | Цель существует (в среднем) | Цель отсутствует (в среднем) |
|---|---|---|
| Неупорядоченный (таблица 5-1) | $n/2$ | $n$ |
| Упорядоченный (таблица 5-2) | $n/2$ | $n/2$ (улучшено) |